package com.yanggu.common.operatorlog;

import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Map;


/**
 * 操作日志事件
 */
@Data
public class OpsLogEvent {

    /**
     * 应用名。目前读取spring.application.name配置项
     */
    private String applicationName;

    /**
     * 方法描述
     */
    private String name;

    /**
     * 操作类型
     */
    private Integer operateType;

    /**
     * 请求方法
     */
    private String requestMethod;

    /**
     * 接口路径
     */
    private String uri;

    /**
     * 浏览器UA
     */
    private String userAgent;

    /**
     * 执行方法
     */
    private String executeMethod;

    /**
     * 0-正常 1-异常
     */
    private Integer status;

    /**
     * 事件时间
     */
    private Date eventTime;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 执行时间（单位：毫秒）
     */
    private Long cost;

    /**
     * 请求IP
     */
    private String ip;

    /**
     * 请求头
     */
    private Map<String, List<String>> requestHeaderMap;

    /**
     * 请求参数
     */
    private String requestParam;

    /**
     * 响应头
     */
    private Map<String, List<String>> responseHeaderMap;

    /**
     * 响应数据
     */
    private String responseData;

    /**
     * 操作内容
     */
    private String operateContent;

    /**
     * 异常类名
     */
    private String exceptionClassName;

    /**
     * 异常信息CODE
     */
    private Integer exceptionCode;

    /**
     * 异常信息
     */
    private String exceptionMessage;

}
